package com.example.app.viewmodel

import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateListOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.lifecycle.ViewModel
import com.example.app.model.entity.ArticleEntity
import com.example.app.model.service.ArticleService

class ArticleViewModel : ViewModel() {

    private val articleService = ArticleService.instance()

    private val pageSize = 10
    private var pageNum = 1

    //新闻列表数据
    var list = mutableStateListOf<ArticleEntity>(
//        mutableListOf<ArticleEntity>()
//        listOf(
//            ArticleEntity(
//                "人社部向疫情防控期参与复工复产的劳动者表达敬佩：您辛苦了",
//                "“学习强国”学习平台",
//                "2024-11-11"
//            ),
//            ArticleEntity(
//                "人社部向疫情防控期参与复工复产的劳动者表达敬佩：您辛苦了",
//                "“学习强国”学习平台",
//                "2024-11-11"
//            ),
//            ArticleEntity(
//                "人社部向疫情防控期参与复工复产的劳动者表达敬佩：您辛苦了",
//                "“学习强国”学习平台",
//                "2024-11-11"
//            ),
//            ArticleEntity(
//                "人社部向疫情防控期参与复工复产的劳动者表达敬佩：您辛苦了",
//                "“学习强国”学习平台",
//                "2024-11-11"
//            ),
//            ArticleEntity(
//                "人社部向疫情防控期参与复工复产的劳动者表达敬佩：您辛苦了",
//                "“学习强国”学习平台",
//                "2024-11-11"
//            ),
//            ArticleEntity(
//                "人社部向疫情防控期参与复工复产的劳动者表达敬佩：您辛苦了",
//                "“学习强国”学习平台",
//                "2024-11-11"
//            ),
//            ArticleEntity(
//                "人社部向疫情防控期参与复工复产的劳动者表达敬佩：您辛苦了",
//                "“学习强国”学习平台",
//                "2024-11-11"
//            ),
//        )
    )
        private set

    //是否正在刷新
    private var refreshing by mutableStateOf(false)

    //是否还有更多
    private var hasMore = true
    suspend fun articleListData() {
        val res = articleService.list(pageNum = pageNum, pageSize = pageSize)
        if (res.code == 200 && res.data != null) {
            if (pageNum == 1) {
                list.clear()
            }
            list.addAll(res.data)
            hasMore = res.data.size >= pageSize
            refreshing = false
        } else {
            pageNum--
            if (pageNum <= 1) {
                pageNum = 1
            }
        }
    }

    /**
     * 下拉刷新
     */
    suspend fun refresh() {
        pageNum = 1
        refreshing = true
        articleListData()
    }

    /**
     * 上拉加载
     */
    suspend fun loadMore() {
        if (hasMore) {
            pageNum++
            articleListData()
        }
    }

    //HTML 头部
    private val htmlHeader = """
        <!DOCTYPE html>
        <html>
          <head>
            <meta charset="utf-8" />
            <meta http-equiv="X-UA-Compatible" content="IE=edge" />
            <title></title>
            <meta name="description" content="" />
            <meta name="viewport" content="width=device-width, initial-scale=1" />
            <link rel="stylesheet" href="" />
            <style>
              img {
                max-width: 100%;
              }
            </style>
          </head>
          <body>
    """.trimIndent()

    //HTML 尾部
    private val htmlFooter = """
                  </body>
        </html>
    """.trimIndent()
    val content = """$htmlHeader
         <p>
          记者从中国国家铁路集团有限公司获悉，2024年11月15日10时20分，随着X8083次中欧班列（重庆—杜伊斯堡）从重庆团结村站开出，中欧班列<strong
            >累计开行突破10万</strong
          ><strong>列</strong
          ><strong>，发送货物超1100万标箱、货值超4200亿美元</strong
          >，保持安全稳定畅通运行，标志着中欧班列高质量发展取得新成效。
        </p>
        <img
          src="https://p3-sign.toutiaoimg.com/tos-cn-i-axegupay5k/76bb99338aed448b8332b869f9a40b77~tplv-tt-large.image?_iz=30575&amp;lk3s=06827d14&amp;x-expires=1732261374&amp;x-signature=yhfkSskoif%2FP01wx0O0iQCk8iHI%3D"
          img_width="640"
          img_height="360"
          inline="0"
          alt="中欧班列累计开行突破10万列 发送货物超1100万标箱"
          onerror="javascript:errorimg.call(this);"
          class="syl-page-img"
          data-src="https://p3-sign.toutiaoimg.com/tos-cn-i-axegupay5k/76bb99338aed448b8332b869f9a40b77~tplv-tt-large.image?_iz=30575&amp;lk3s=06827d14&amp;x-expires=1732261374&amp;x-signature=yhfkSskoif%2FP01wx0O0iQCk8iHI%3D"
          style="height: auto" />
        <p>
          从2016年统一品牌至2023年，中欧班列年开行数量由1702列增加到超1.7万列，增长近10倍。开行万列所需时间由开行之初的90个月缩短为现在的6个月。今年3月以来已连续8个月单月开行数量超过1600列。
        </p>
        $htmlFooter
    """.trimIndent()
}